#ifndef CPROPERTYEDITORITEM_H
#define CPROPERTYEDITORITEM_H

#include <QObject>
#include <QString>
#include <vector>
//#include "CPropertyEditor.h"

class CPropertyEditor;

class CPropertyEditorItem : public QObject
{
    Q_OBJECT

    QString helpStr;
    QString getHelpString() { return helpStr; }
    void setHelpString( const QString & str ) { helpStr = str; }
public:
    explicit CPropertyEditorItem( QObject *parent = 0 ) : QObject( parent ) {}
    ~CPropertyEditorItem(){}

    //virtual void Draw( QPainter * c, const QRect & ricon, const QRect & rkey, const QRect & rvalue, TGridDrawState state ) = 0;
    //virtual bool CanEditShow() = 0;
    //virtual bool CanEditModify() = 0;
    //void Show() { Visible = true; }
    //void Hide() { Visible = false; }
    //bool Visible = { read=GetVisible, write=SetVisible };

    virtual void Map( std::vector< CPropertyEditorItem* > & v ) = 0;
    virtual CPropertyEditor * Editor() = 0;

    Q_PROPERTY( QString HelpString READ getHelpString WRITE setHelpString )
    
signals:
    
public slots:
    
};

#endif // CPROPERTYEDITORITEM_H
